package com.products.dao.connection;

import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;

public class DataSource implements IDataSource {
	private String URL = "jdbc:mysql://localhost:3306/12345";
	private String user = "root";
	private String password = "root";
	private String driverName = "org.gjt.mm.mysql.Driver";

	@Override
	public void freeConnection(Connection con) {
		try {
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	public Connection getConnection() {
		Connection c = null;
		try {
			Class.forName(driverName).newInstance();
			try {
				Properties properties = new Properties();
				properties.setProperty("user", user);
				properties.setProperty("password", password);
				properties.setProperty("useUnicode", "true");
				properties.setProperty("characterEncoding", "UTF-8");

				c = (Connection) DriverManager.getConnection(URL, properties);
			} catch (SQLException e) {
				e.printStackTrace();
				if (e.getErrorCode() == 3330)
					JOptionPane.showMessageDialog(null,
							"Сервер MySql не запущен! Подключение невозможо!");
				else
					JOptionPane.showMessageDialog(null,
							"Не удалось подключиться к серверу MySql!");
				System.exit(0);
			}
			return c;
		} catch (InstantiationException exc) {
			JOptionPane
					.showMessageDialog(null,
							"Объект драйвера для MySql не был создан! дальнейшая работа невозможна!!");
			System.exit(0);
		} catch (ClassNotFoundException exc) {
			JOptionPane.showMessageDialog(null,
					"Драйвер для работы с БД! дальнейшая работа невозможна!");
			System.exit(0);
		} catch (IllegalAccessException e1) {
			JOptionPane
					.showMessageDialog(
							null,
							"Менеджер безопастности отклонил попытку создания экземпляра класса! дальнейшая работа невозможна!");
			System.exit(0);
		}
		return null;
	}
}
